package main

import (
	u "RBK/Algorithm/pkg/util"
	"fmt"
)

func main() {
	fmt.Println("Hello Algorithm")
	// t := u.NewTree(u.NewNode(1))
	// t.Root.Left = u.NewNode(2)
	// t.Root.Right = u.NewNode(3)

	// t.Root.Left.Left = u.NewNode(4)
	// // t.Root.Left.Left.Left = e.NewNode(8)
	// t.Root.Left.Right = u.NewNode(5)
	// // t.Root.Left.Right.Left = e.NewNode(9)

	// t.Root.Right.Left = u.NewNode(6)
	// t.Root.Right.Left.Left = u.NewNode(7)

	// result := u.GetMinDepth(t.Root, 1)
	// fmt.Println()
	// fmt.Printf("最小深度结果：%#v\n", result)

	// list := u.NewSingleLinkList()
	// values := []int{1, 2, 3, 4, 5}
	// for i := 0; i < len(values); i++ {
	// 	list.AppendLinkNode(values[i])
	// }
	// fmt.Println("未反转前")
	// list.ShowSingleLinkList()

	// list.ReverseSingleLinkList()
	// fmt.Println("反转后")
	// list.ShowSingleLinkList()
	// list = u.ReverseSingleLinkList(list)
	// list.ShowSingleLinkList()

	// list := []int{0, 1, 1, 2, 2, 3, 4, 4}
	// list := []int{5, 2, 0, 2, 5}
	// result := u.DeleteDuplicates(list)
	// fmt.Printf("删除重复项后数组的长度为：%v", result)

	// fmt.Println()
	// result = u.GetCenterIndex(list)
	// fmt.Printf("数组的中心下标为：%v", result)

	// num := 8
	// result := u.GetSqrt(num)
	// fmt.Printf("%v的平方根是：%v", num, result)

	// num := 10
	// result := u.GetFibonacci(10)
	// fmt.Printf("%v的斐波那契值是：%v", num, result)

	u.GlassLayers = 101
	glassNum, glassRow, queryGlass := 10.0, 2, 0
	result := u.ChampagneTower(glassNum, glassRow, queryGlass)
	fmt.Printf("倒了%v杯酒后，第%v行第%v个杯子里装了 %v 的酒", glassNum, glassRow, queryGlass, result)
}
